Plot and fit distributions of variables

Histogram of Velocity of all

Log distribution, 0’s make up 3% of all data

CC.TotalData <- na.omit(TotalData)
head(CC.TotalData)
10^mean(log10(CC.TotalData$v[CC.TotalData$v>0]))
[1] 0.03502632
sd(log10(CC.TotalData$v[CC.TotalData$v>0]))
[1] 0.5358195

Now we’re going to plot each unique krill and their bimodality with a dip test (less than 0.05 is multimodality)

ind <- unique(CC.TotalData$D_V_T)
print(ind)
  [1] 20191118_1__1 20191119_1__4 20191119_1__5 20191119_1__1 20191119_1__2 20191119_1__3 20191119_2__1 20191119_2__2 20191119_2__4 20191119_2__3
 [11] 20191119_2__5 20191119_3__1 20191119_3__2 20191119_3__5 20191119_3__4 20191119_3__3 20191119_5__1 20191119_5__3 20191119_5__4 20191119_5__2
 [21] 20191119_6__1 20191119_6__3 20191119_7__1 20191119_7__2 20191119_7__3 20191119_7__5 20191119_7__4 20191120_2__1 20191120_2__2 20191120_2__3
 [31] 20191120_2__4 20191120_2__5 20191120_4__2 20191120_4__4 20191120_4__3 20191120_4__1 20191121_1__2 20191121_1__3 20191121_1__4 20191121_1__1
 [41] 20191121_2__3 20191121_2__4 20191121_2__5 20191121_2__6 20191121_2__1 20191121_2__2 20191121_4__1 20191121_4__2 20191121_4__3 20191121_4__4
 [51] 20191121_5__3 20191121_5__4 20191121_5__2 20191121_5__1 20191121_6__1 20191121_6__3 20191121_6__2 20191121_6__4 20191121_7__1 20191121_7__2
 [61] 20191121_7__3 20191121_7__4 20191122_2__2 20191122_2__1 20191122_2__3 20191122_2__4 20191122_3__2 20191122_3__3 20191122_3__4 20191122_3__1
 [71] 20191124_10_1 20191124_10_2 20191127_1__3 20191127_1__4 20191127_1__6 20191127_1__7 20191127_1__5 20191127_1__1 20191127_1__2 20191127_4__2
 [81] 20191127_4__1 20191127_4__3 20191127_4__4 20191127_4__5 20191127_4__6 20191129_2__1 20191129_2__2 20191129_2__3 20191129_2__4 20191129_3__1
 [91] 20191129_3__2 20191129_3__3 20191129_3__4 20191129_6__1 20191129_6__2 20191129_6__3 20191129_6__4 20191130_1__1 20191130_1__2 20191130_1__3
[101] 20191130_1__4 20191130_2__1 20191130_2__2 20191130_2__3 20191130_2__4 20191130_3__1 20191130_3__2 20191130_3__3 20191130_3__4 20191130_6__1
[111] 20191130_6__2 20191130_6__3 20191130_6__4 20191130_6__5 20191201_2__1 20191201_2__2 20191201_2__3 20191201_2__4 20191202_1__1 20191202_1__2
[121] 20191202_1__3 20191202_1__4 20191204_2__1 20191204_2__2 20191204_2__3 20191204_2__4 20191205_10_1 20191205_10_2 20191205_10_3 20191205_10_4
[131] 20191212_3__1 20191212_3__2 20191212_3__3
153 Levels: 20191118_1__1 20191119_1__1 20191119_1__2 20191119_1__3 20191119_1__4 20191119_1__5 20191119_2__1 20191119_2__2 20191119_2__3 ... 20191212_3__4
length(ind)
[1] 133
library(diptest)
library(DescTools)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
tab <- matrix(data = NA, nrow = 133, ncol =5, byrow = T)
colnames(tab) <- c('dip.test', 'skew', 'mean.velocity', 'sd.velocity', 'Ind')

tab <- as.data.frame(tab)
tab$Ind <- ind
mean.vel <- NULL
sd.vel <- NULL
d.v <- NULL
s.v <- NULL

for (i in 1:length(ind)){
mean.v <- mean(CC.TotalData$v[CC.TotalData$D_V_T==ind[i]])
sd.v <- sd(CC.TotalData$v[CC.TotalData$D_V_T==ind[i]])

mean.vel <- rbind(mean.vel, mean.v)
sd.vel <- rbind(sd.vel, sd.v)


vels <- (CC.TotalData$v[CC.TotalData$D_V_T==ind[i]])
vels <- log10(vels[vels>0])
d <- dip.test(vels)
d.p <- d$p.value
d.v <- rbind(d.v, d.p)

s <- Skew(vels)
s.v <- rbind(s.v, s)
##}

##ind <- unique(CC.TotalData$D_V_T)

##for (i in 1:length(ind)){
 hist(log10(CC.TotalData$v[CC.TotalData$D_V_T==ind[i]]),
     breaks = 50,
     xlab = "Velocity (Log^10 mm/s)",
     main = ind[i],
     sub = d.p)  ## change to d.p or s to print the dip test or skew value as the title instead
}


## to save each ind graph to working directory
for (i in 1:length(ind)){
  jpeg(filename=paste(ind[i], '.jpeg', sep = ''), width = 480, height = 480)
 hist(log10(CC.TotalData$v[CC.TotalData$D_V_T==ind[i]]),
     breaks = 50,
     xlab = "Velocity (Log^10 mm/s)",
     main = ind[i])
dev.off()
}


tab$skew <- s.v
tab$dip.test <- d.v
tab$mean.velocity <- (log10(mean.vel))
tab$sd.velocity <- (log10(sd.vel))
tab
write.table(tab, file = "~/Post-doc/Data/dip.test.skew.vels.csv", sep = ",", col.names = TRUE)

plot(tab)



head(TotalData)
str(TotalData)
'data.frame':   1725905 obs. of  23 variables:
 $ Date       : chr  "20191118" "20191118" "20191118" "20191118" ...
 $ File.name  : chr  "20191118_view1_" "20191118_view1_" "20191118_view1_" "20191118_view1_" ...
 $ X          : num  0.319 NaN 0.318 NaN 0.343 ...
 $ Y          : num  NaN NaN NaN NaN 0.0999 ...
 $ Z          : num  NaN -0.0573 NaN -0.0567 -0.055 ...
 $ Track      : int  1 1 1 1 1 1 1 1 1 1 ...
 $ View       : chr  "1_" "1_" "1_" "1_" ...
 $ D_V_T      : Factor w/ 153 levels "20191118_1__1",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ D_V        : Factor w/ 35 levels "20191118_1_",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Flow.rate  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Chlorophyll: num  0 0 0 0 0 0 0 0 0 0 ...
 $ Guano      : chr  "Absent" "Absent" "Absent" "Absent" ...
 $ Light      : chr  "Present" "Present" "Present" "Present" ...
 $ dx         : num  NaN NaN NaN NaN -0.00115 ...
 $ dy         : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
 $ dz         : num  NaN NaN NaN 0.00168 NaN ...
 $ d          : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
 $ vx         : num  NaN NaN NaN NaN -0.0345 ...
 $ vy         : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
 $ vz         : num  NaN NaN NaN 0.0503 NaN ...
 $ v          : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
 $ heading    : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
 $ pitch      : num  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
TotalData$Flow.rate <- as.factor(TotalData$Flow.rate)
TotalData$Chlorophyll <- as.factor(TotalData$Chlorophyll)

Now looking at turning angles

TotalData$turn.anglexy <- atan2(TotalData$X, TotalData$Y)
TotalData$turn.angleyz <- atan2(TotalData$Y, TotalData$Z)


lth <- dim(TotalData)[1]
dx1 <- TotalData$dx[1:(lth-1)]
dx2 <- TotalData$dx[2:lth]
dy1 <- TotalData$dy[1:(lth-1)]
dy2 <- TotalData$dy[2:lth]
dz1 <- TotalData$dz[1:(lth-1)]
dz2 <- TotalData$dz[2:lth]
D <- (dx1*dx2)+(dy1*dy2)+(dz1*dz2)
d1 <- sqrt(dx1^2 + dy1^2 +dz1^2)
d2 <- sqrt(dx2^2 + dy2^2 +dz2^2)

dd <- D/d1/d2
hist(acos(dd)/pi*180)
Warning in acos(dd) : NaNs produced
TotalData$turn.angle <- c(NA, acos(D/d1/d2))/pi*180
Warning in acos(D/d1/d2) : NaNs produced
head(TotalData)
CC.TotalData <- na.omit(TotalData)
head(CC.TotalData)
tail(CC.TotalData)
str(CC.TotalData)
'data.frame':   1112228 obs. of  26 variables:
 $ Date        : chr  "20191118" "20191118" "20191118" "20191118" ...
 $ File.name   : chr  "20191118_view1_" "20191118_view1_" "20191118_view1_" "20191118_view1_" ...
 $ X           : num  0.327 0.163 0.18 0.167 0.158 ...
 $ Y           : num  0.0717 0.0405 0.0373 0.0891 0.113 ...
 $ Z           : num  -0.0595 -0.0774 -0.0835 -0.1104 -0.0953 ...
 $ Track       : int  1 1 1 1 1 1 1 1 1 1 ...
 $ View        : chr  "1_" "1_" "1_" "1_" ...
 $ D_V_T       : Factor w/ 153 levels "20191118_1__1",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ D_V         : Factor w/ 35 levels "20191118_1_",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Flow.rate   : Factor w/ 5 levels "0","0.6","3",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Chlorophyll : Factor w/ 7 levels "0","4.3","4.6",..: 1 1 1 1 1 1 1 1 1 1 ...
 $ Guano       : chr  "Absent" "Absent" "Absent" "Absent" ...
 $ Light       : chr  "Present" "Present" "Present" "Present" ...
 $ dx          : num  -0.00115 0.00283 0.00282 0 -0.00289 ...
 $ dy          : num  -0.00196 -0.00183 0.00505 0.00511 0.00535 ...
 $ dz          : num  -0.00112 0.00056 -0.00112 0.00112 0.00168 ...
 $ d           : num  0.00253 0.00342 0.00589 0.00523 0.00631 ...
 $ vx          : num  -0.0345 0.0849 0.0846 0 -0.0867 ...
 $ vy          : num  -0.0587 -0.0548 0.1514 0.1533 0.1605 ...
 $ vz          : num  -0.0335 0.0168 -0.0335 0.0336 0.0503 ...
 $ v           : num  0.0759 0.1025 0.1767 0.157 0.1892 ...
 $ heading     : num  0.531 -0.997 0.509 0 -0.495 ...
 $ pitch       : num  -0.458 0.165 -0.191 0.216 0.269 ...
 $ turn.anglexy: num  1.36 1.33 1.37 1.08 0.95 ...
 $ turn.angleyz: num  2.26 2.66 2.72 2.46 2.27 ...
 $ turn.angle  : num  12.1 31.1 59.3 26.6 16.7 ...
 - attr(*, "na.action")= 'omit' Named int [1:613677] 1 2 3 4 5 6 7 8 9 10 ...
  ..- attr(*, "names")= chr [1:613677] "65" "67" "70" "71" ...
CC.TotalData$Flow.rate <- as.character(CC.TotalData$Flow.rate)
CC.TotalData$Chlorophyll<- as.character(CC.TotalData$Chlorophyll)
CC.TotalData$Guano <- as.character(CC.TotalData$Guano)
CC.TotalData$Light <- as.character(CC.TotalData$Light)


CC.TotalData$Flow.rate <- as.numeric(CC.TotalData$Flow.rate)
CC.TotalData$Chlorophyll<- as.numeric(CC.TotalData$Chlorophyll)

head(CC.TotalData)

ind <- unique(CC.TotalData$D_V_T)

## to save ind histogram plots
for (i in 1:length(ind)){
jpeg(filename=paste(ind[i], '.jpeg', sep = ''), width = 480, height = 480)
hist(CC.TotalData$turn.angle[CC.TotalData$D_V_T==ind[i]],
     breaks = 50,
     xlab = "Turn Angles (degrees)",
     main = ind[i]) 
dev.off()
}


plot(CC.TotalData$Flow.rate, CC.TotalData$turn.angle, main = "", xlab = "Flow Rate (cm/s)", ylab = "Turn angle (degrees)")


plot(CC.TotalData$Chlorophyll, CC.TotalData$turn.angle, main = "", xlab = "Chlorophyll (mg/L)", ylab = "Turn angle (degrees)")


library(ggplot2)
Need help? Try Stackoverflow: https://stackoverflow.com/tags/ggplot2
ggplot(TotalData,aes(x=Flow.rate, y=log10(v), fill=Chlorophyll))+
  geom_boxplot(notch=F, notchwidth=0.3,outlier.shape=1,outlier.size=2, coef=1.5)+
  theme(axis.text=element_text(color="black"))+
  theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
  theme(panel.grid.minor=element_blank())+
  labs(size= "",x = "Flow Rate (cm/s)", y = "Velocity (Log transformed)(mm/s)", title = "Light") +
  scale_fill_manual(values=c("greenyellow", "yellowgreen","lightgreen", "green", "green3", "green4", "darkgreen"),name = "Chlorophyll (mg/L)",
                    labels=c("0", "4.3", "4.6", "6.1", "7.6", "13.5", "19"))+
  facet_grid(~Light, scales = "free_x", space = "free")
Warning: Removed 597081 rows containing non-finite values (stat_boxplot).

ggplot(TotalData,aes(x=Flow.rate, y=turn.angle, fill=Chlorophyll))+
  geom_boxplot(notch=F, notchwidth=0.3,outlier.shape=1,outlier.size=2, coef=1.5)+
  theme(axis.text=element_text(color="black"))+
  theme(axis.text.x=element_text(angle=90,hjust=1,vjust=0.4))+
  theme(panel.grid.minor=element_blank())+
  labs(size= "",x = "Flow Rate (cm/s)", y = "Turn Angle (degrees)", title = "Light") +
  scale_fill_manual(values=c("greenyellow", "yellowgreen","lightgreen", "green", "green3", "green4", "darkgreen"),name = "Chlorophyll (mg/L)",
                    labels=c("0", "4.3", "4.6", "6.1", "7.6", "13.5", "19"))+
  facet_grid(~Light, scales = "free_x", space = "free")
Warning: Removed 609316 rows containing non-finite values (stat_boxplot).

Starting to look at bi-modality in the variables by merging the TotalData frame with the “tab” table

##aggregating Complete cases of TotalData so we can merge it with tab data

AGG_TD <- aggregate(CC.TotalData, by = list(CC.TotalData$D_V_T), FUN = mean)
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
Warning in mean.default(X[[i]], ...) :
  argument is not numeric or logical: returning NA
head(AGG_TD)
AGG_TD <- AGG_TD[ -c(2:3, 8:10) ]
colnames(AGG_TD) <- c("Ind", "X", "Y", "Z", "Track", "Flow.Rate", "Chlorophyll", "Guano", "Light", "dx", "dy", "dz", "d", "vx", "vy", "vz", "v", "heading", "pitch", "turn.anglexy", "turn.angleyz", "turn.angle")
head(AGG_TD)
tail(AGG_TD)


tab_AGG <- merge(AGG_TD, tab, by = "Ind")
head(tab_AGG)
str(tab_AGG)
'data.frame':   133 obs. of  26 variables:
 $ Ind          : Factor w/ 153 levels "20191118_1__1",..: 1 2 3 4 5 6 7 8 9 10 ...
 $ X            : num  0.14 0.1392 0.1837 0.0812 0.1202 ...
 $ Y            : num  0.318 0.197 0.223 0.349 0.223 ...
 $ Z            : num  -0.0834 -0.0735 -0.1501 -0.0605 -0.0568 ...
 $ Track        : num  1 1 2 3 4 5 1 2 3 4 ...
 $ Flow.Rate    : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Chlorophyll  : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Guano        : num  NA NA NA NA NA NA NA NA NA NA ...
 $ Light        : num  NA NA NA NA NA NA NA NA NA NA ...
 $ dx           : num  -1.28e-03 -1.83e-05 -2.21e-05 8.11e-06 3.77e-05 ...
 $ dy           : num  -2.70e-03 5.24e-05 -6.01e-07 -1.79e-05 -5.16e-05 ...
 $ dz           : num  -1.55e-04 -6.65e-06 3.35e-05 -8.46e-06 -9.50e-06 ...
 $ d            : num  0.00811 0.00357 0.00327 0.00296 0.00394 ...
 $ vx           : num  -0.038454 -0.00055 -0.000662 0.000243 0.00113 ...
 $ vy           : num  -0.081119 0.001571 -0.000018 -0.000536 -0.001547 ...
 $ vz           : num  -0.004635 -0.0002 0.001006 -0.000254 -0.000285 ...
 $ v            : num  0.2433 0.107 0.098 0.0888 0.1181 ...
 $ heading      : num  2.15e-01 1.90e-02 1.14e-05 7.21e-03 -1.43e-02 ...
 $ pitch        : num  0.0151 -0.0119 0.0122 -0.0339 -0.0321 ...
 $ turn.anglexy : num  0.46 0.709 0.787 0.276 0.574 ...
 $ turn.angleyz : num  1.89 2.13 2.33 1.79 2.02 ...
 $ turn.angle   : num  23.7 94.1 93.6 85.8 88 ...
 $ dip.test     : num [1:133, 1] 7.56e-01 1.74e-03 1.41e-06 0.00 4.45e-03 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:133] "d.p" "d.p" "d.p" "d.p" ...
  .. ..$ : NULL
 $ skew         : num [1:133, 1] -0.721 -0.416 -0.419 -0.51 -0.396 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:133] "s" "s" "s" "s" ...
  .. ..$ : NULL
 $ mean.velocity: num [1:133, 1] -0.617 -0.971 -1.009 -1.052 -0.928 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:133] "mean.v" "mean.v" "mean.v" "mean.v" ...
  .. ..$ : NULL
 $ sd.velocity  : num [1:133, 1] -0.985 -0.672 -0.829 -0.869 -0.452 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : chr [1:133] "sd.v" "sd.v" "sd.v" "sd.v" ...
  .. ..$ : NULL
tab_AGG$Flow.Rate <- as.factor(tab_AGG$Flow.Rate)
tab_AGG$Chlorophyll <- as.factor(tab_AGG$Chlorophyll)

freq <- table(tab_AGG$Flow.Rate, tab_AGG$Chlorophyll)
print(freq)
     
       0 4.3 4.6 6.1 7.6 13.5 19
  0   48   0   0   0  12    0 13
  0.6  2   8   4   4   0    3  0
  3    4   0   0   0   0    0  0
  5.9 23   0   0   0   0    0  0
  8.9 12   0   0   0   0    0  0
prob <- prop.table(freq) ##Relative Frequency Table
print (prob)
     
               0        4.3        4.6        6.1        7.6       13.5         19
  0   0.36090226 0.00000000 0.00000000 0.00000000 0.09022556 0.00000000 0.09774436
  0.6 0.01503759 0.06015038 0.03007519 0.03007519 0.00000000 0.02255639 0.00000000
  3   0.03007519 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
  5.9 0.17293233 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
  8.9 0.09022556 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
##starting to plot the dip test and skew in the variables
plot(tab_AGG$Flow.Rate, tab_AGG$dip.test, xlab = "Flow Rate (cm/s)", ylab = "Dip Test (p.value)")

plot(tab_AGG$Flow.Rate, tab_AGG$skew, xlab = "Flow Rate (cm/s)", ylab = "Skew Test (p.value)")

plot(tab_AGG$Chlorophyll, tab_AGG$dip.test, xlab = "Chlorophyll (mg/L)", ylab = "Dip Test (p.value)")

plot(tab_AGG$Chlorophyll, tab_AGG$skew, xlab = "Chlorophyll (mg/L)", ylab = "Skew Test (p.value)")


## to save each ind graph
for (i in 1:length(ind)){
  jpeg(filename=paste(ind[i], '.jpeg', sep = ''), width = 480, height = 480)
plot(CC.TotalData$turn.angle[CC.TotalData$D_V_T==ind[i]], log10(CC.TotalData$v[CC.TotalData$D_V_T==ind[i]]),
            xlab = "Turn Angles (degrees)",
     ylab = "Velocity (LOg^10, mm/s)",
          main = ind[i]) 
dev.off()
}

hist(CC.TotalData$turn.angle, breaks = 100)

NA
NA
NA
save.image("~/Post-doc/Data/Total Merged Data File (April 5 2022).RData")
LS0tDQp0aXRsZTogIkNoZWNraW5nIERpc3RyaWJ1dGlvbiBmb3IgVmFyaWFibGVzIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KUGxvdCBhbmQgZml0IGRpc3RyaWJ1dGlvbnMgb2YgdmFyaWFibGVzDQoNCmBgYHtyfQ0KDQpsb2FkKCJDOlxcVXNlcnNcXE5pY29sZSBIZWxsZXNzZXlcXERvY3VtZW50c1xcUG9zdC1kb2NcXERhdGFcXFRvdGFsIERhdGEgTWVyZ2VkIEZpbGUgKEFwcmlsIDUgMjAyMikuUmRhIikNCg0KaGlzdChsb2cxMChUb3RhbERhdGEkdiksDQogICAgIHhsYWIgPSAiVmVsb2NpdHkgKExvZ14xMCBtbS9zKSIpDQoNCmBgYA0KDQpIaXN0b2dyYW0gb2YgVmVsb2NpdHkgb2YgYWxsDQoNCkxvZyBkaXN0cmlidXRpb24sIDAncyBtYWtlIHVwIDMlIG9mIGFsbCBkYXRhDQoNCmBgYHtyfQ0KQ0MuVG90YWxEYXRhIDwtIG5hLm9taXQoVG90YWxEYXRhKQ0KaGVhZChDQy5Ub3RhbERhdGEpDQoxMF5tZWFuKGxvZzEwKENDLlRvdGFsRGF0YSR2W0NDLlRvdGFsRGF0YSR2PjBdKSkNCnNkKGxvZzEwKENDLlRvdGFsRGF0YSR2W0NDLlRvdGFsRGF0YSR2PjBdKSkNCg0KYGBgDQpOb3cgd2UncmUgZ29pbmcgdG8gcGxvdCBlYWNoIHVuaXF1ZSBrcmlsbCBhbmQgdGhlaXIgYmltb2RhbGl0eSB3aXRoIGEgZGlwIHRlc3QgKGxlc3MgdGhhbiAwLjA1IGlzIG11bHRpbW9kYWxpdHkpDQoNCmBgYHtyfQ0KaW5kIDwtIHVuaXF1ZShDQy5Ub3RhbERhdGEkRF9WX1QpDQpwcmludChpbmQpDQpsZW5ndGgoaW5kKQ0KbGlicmFyeShkaXB0ZXN0KQ0KbGlicmFyeShEZXNjVG9vbHMpDQoNCnRhYiA8LSBtYXRyaXgoZGF0YSA9IE5BLCBucm93ID0gMTMzLCBuY29sID01LCBieXJvdyA9IFQpDQpjb2xuYW1lcyh0YWIpIDwtIGMoJ2RpcC50ZXN0JywgJ3NrZXcnLCAnbWVhbi52ZWxvY2l0eScsICdzZC52ZWxvY2l0eScsICdJbmQnKQ0KDQp0YWIgPC0gYXMuZGF0YS5mcmFtZSh0YWIpDQp0YWIkSW5kIDwtIGluZA0KbWVhbi52ZWwgPC0gTlVMTA0Kc2QudmVsIDwtIE5VTEwNCmQudiA8LSBOVUxMDQpzLnYgPC0gTlVMTA0KDQpmb3IgKGkgaW4gMTpsZW5ndGgoaW5kKSl7DQptZWFuLnYgPC0gbWVhbihDQy5Ub3RhbERhdGEkdltDQy5Ub3RhbERhdGEkRF9WX1Q9PWluZFtpXV0pDQpzZC52IDwtIHNkKENDLlRvdGFsRGF0YSR2W0NDLlRvdGFsRGF0YSREX1ZfVD09aW5kW2ldXSkNCg0KbWVhbi52ZWwgPC0gcmJpbmQobWVhbi52ZWwsIG1lYW4udikNCnNkLnZlbCA8LSByYmluZChzZC52ZWwsIHNkLnYpDQoNCg0KdmVscyA8LSAoQ0MuVG90YWxEYXRhJHZbQ0MuVG90YWxEYXRhJERfVl9UPT1pbmRbaV1dKQ0KdmVscyA8LSBsb2cxMCh2ZWxzW3ZlbHM+MF0pDQpkIDwtIGRpcC50ZXN0KHZlbHMpDQpkLnAgPC0gZCRwLnZhbHVlDQpkLnYgPC0gcmJpbmQoZC52LCBkLnApDQoNCnMgPC0gU2tldyh2ZWxzKQ0Kcy52IDwtIHJiaW5kKHMudiwgcykNCiMjfQ0KDQojI2luZCA8LSB1bmlxdWUoQ0MuVG90YWxEYXRhJERfVl9UKQ0KDQojI2ZvciAoaSBpbiAxOmxlbmd0aChpbmQpKXsNCiBoaXN0KGxvZzEwKENDLlRvdGFsRGF0YSR2W0NDLlRvdGFsRGF0YSREX1ZfVD09aW5kW2ldXSksDQogICAgIGJyZWFrcyA9IDUwLA0KICAgICB4bGFiID0gIlZlbG9jaXR5IChMb2deMTAgbW0vcykiLA0KICAgICBtYWluID0gaW5kW2ldLA0KICAgICBzdWIgPSBkLnApICAjIyBjaGFuZ2UgdG8gZC5wIG9yIHMgdG8gcHJpbnQgdGhlIGRpcCB0ZXN0IG9yIHNrZXcgdmFsdWUgYXMgdGhlIHRpdGxlIGluc3RlYWQNCn0NCg0KIyMgdG8gc2F2ZSBlYWNoIGluZCBncmFwaCB0byB3b3JraW5nIGRpcmVjdG9yeQ0KZm9yIChpIGluIDE6bGVuZ3RoKGluZCkpew0KICBqcGVnKGZpbGVuYW1lPXBhc3RlKGluZFtpXSwgJy5qcGVnJywgc2VwID0gJycpLCB3aWR0aCA9IDQ4MCwgaGVpZ2h0ID0gNDgwKQ0KIGhpc3QobG9nMTAoQ0MuVG90YWxEYXRhJHZbQ0MuVG90YWxEYXRhJERfVl9UPT1pbmRbaV1dKSwNCiAgICAgYnJlYWtzID0gNTAsDQogICAgIHhsYWIgPSAiVmVsb2NpdHkgKExvZ14xMCBtbS9zKSIsDQogICAgIG1haW4gPSBpbmRbaV0pDQpkZXYub2ZmKCkNCn0NCg0KdGFiJHNrZXcgPC0gcy52DQp0YWIkZGlwLnRlc3QgPC0gZC52DQp0YWIkbWVhbi52ZWxvY2l0eSA8LSAobG9nMTAobWVhbi52ZWwpKQ0KdGFiJHNkLnZlbG9jaXR5IDwtIChsb2cxMChzZC52ZWwpKQ0KdGFiDQp3cml0ZS50YWJsZSh0YWIsIGZpbGUgPSAifi9Qb3N0LWRvYy9EYXRhL2RpcC50ZXN0LnNrZXcudmVscy5jc3YiLCBzZXAgPSAiLCIsIGNvbC5uYW1lcyA9IFRSVUUpDQoNCnBsb3QodGFiKQ0KDQoNCmhlYWQoVG90YWxEYXRhKQ0Kc3RyKFRvdGFsRGF0YSkNClRvdGFsRGF0YSRGbG93LnJhdGUgPC0gYXMuZmFjdG9yKFRvdGFsRGF0YSRGbG93LnJhdGUpDQpUb3RhbERhdGEkQ2hsb3JvcGh5bGwgPC0gYXMuZmFjdG9yKFRvdGFsRGF0YSRDaGxvcm9waHlsbCkNCg0KYGBgDQoNCg0KTm93IGxvb2tpbmcgYXQgdHVybmluZyBhbmdsZXMNCg0KYGBge3J9DQpUb3RhbERhdGEkdHVybi5hbmdsZXh5IDwtIGF0YW4yKFRvdGFsRGF0YSRYLCBUb3RhbERhdGEkWSkNClRvdGFsRGF0YSR0dXJuLmFuZ2xleXogPC0gYXRhbjIoVG90YWxEYXRhJFksIFRvdGFsRGF0YSRaKQ0KDQoNCmx0aCA8LSBkaW0oVG90YWxEYXRhKVsxXQ0KZHgxIDwtIFRvdGFsRGF0YSRkeFsxOihsdGgtMSldDQpkeDIgPC0gVG90YWxEYXRhJGR4WzI6bHRoXQ0KZHkxIDwtIFRvdGFsRGF0YSRkeVsxOihsdGgtMSldDQpkeTIgPC0gVG90YWxEYXRhJGR5WzI6bHRoXQ0KZHoxIDwtIFRvdGFsRGF0YSRkelsxOihsdGgtMSldDQpkejIgPC0gVG90YWxEYXRhJGR6WzI6bHRoXQ0KRCA8LSAoZHgxKmR4MikrKGR5MSpkeTIpKyhkejEqZHoyKQ0KZDEgPC0gc3FydChkeDFeMiArIGR5MV4yICtkejFeMikNCmQyIDwtIHNxcnQoZHgyXjIgKyBkeTJeMiArZHoyXjIpDQoNCmRkIDwtIEQvZDEvZDINCmhpc3QoYWNvcyhkZCkvcGkqMTgwKQ0KDQpUb3RhbERhdGEkdHVybi5hbmdsZSA8LSBjKE5BLCBhY29zKEQvZDEvZDIpKS9waSoxODANCmhlYWQoVG90YWxEYXRhKQ0KQ0MuVG90YWxEYXRhIDwtIG5hLm9taXQoVG90YWxEYXRhKQ0KaGVhZChDQy5Ub3RhbERhdGEpDQp0YWlsKENDLlRvdGFsRGF0YSkNCnN0cihDQy5Ub3RhbERhdGEpDQpDQy5Ub3RhbERhdGEkRmxvdy5yYXRlIDwtIGFzLmNoYXJhY3RlcihDQy5Ub3RhbERhdGEkRmxvdy5yYXRlKQ0KQ0MuVG90YWxEYXRhJENobG9yb3BoeWxsPC0gYXMuY2hhcmFjdGVyKENDLlRvdGFsRGF0YSRDaGxvcm9waHlsbCkNCkNDLlRvdGFsRGF0YSRHdWFubyA8LSBhcy5jaGFyYWN0ZXIoQ0MuVG90YWxEYXRhJEd1YW5vKQ0KQ0MuVG90YWxEYXRhJExpZ2h0IDwtIGFzLmNoYXJhY3RlcihDQy5Ub3RhbERhdGEkTGlnaHQpDQoNCg0KQ0MuVG90YWxEYXRhJEZsb3cucmF0ZSA8LSBhcy5udW1lcmljKENDLlRvdGFsRGF0YSRGbG93LnJhdGUpDQpDQy5Ub3RhbERhdGEkQ2hsb3JvcGh5bGw8LSBhcy5udW1lcmljKENDLlRvdGFsRGF0YSRDaGxvcm9waHlsbCkNCg0KaGVhZChDQy5Ub3RhbERhdGEpDQoNCmluZCA8LSB1bmlxdWUoQ0MuVG90YWxEYXRhJERfVl9UKQ0KDQojIyB0byBzYXZlIGluZCBoaXN0b2dyYW0gcGxvdHMNCmZvciAoaSBpbiAxOmxlbmd0aChpbmQpKXsNCmpwZWcoZmlsZW5hbWU9cGFzdGUoaW5kW2ldLCAnLmpwZWcnLCBzZXAgPSAnJyksIHdpZHRoID0gNDgwLCBoZWlnaHQgPSA0ODApDQpoaXN0KENDLlRvdGFsRGF0YSR0dXJuLmFuZ2xlW0NDLlRvdGFsRGF0YSREX1ZfVD09aW5kW2ldXSwNCiAgICAgYnJlYWtzID0gNTAsDQogICAgIHhsYWIgPSAiVHVybiBBbmdsZXMgKGRlZ3JlZXMpIiwNCiAgICAgbWFpbiA9IGluZFtpXSkgDQpkZXYub2ZmKCkNCn0NCg0KcGxvdChDQy5Ub3RhbERhdGEkRmxvdy5yYXRlLCBDQy5Ub3RhbERhdGEkdHVybi5hbmdsZSwgbWFpbiA9ICIiLCB4bGFiID0gIkZsb3cgUmF0ZSAoY20vcykiLCB5bGFiID0gIlR1cm4gYW5nbGUgKGRlZ3JlZXMpIikNCg0KcGxvdChDQy5Ub3RhbERhdGEkQ2hsb3JvcGh5bGwsIENDLlRvdGFsRGF0YSR0dXJuLmFuZ2xlLCBtYWluID0gIiIsIHhsYWIgPSAiQ2hsb3JvcGh5bGwgKG1nL0wpIiwgeWxhYiA9ICJUdXJuIGFuZ2xlIChkZWdyZWVzKSIpDQoNCmxpYnJhcnkoZ2dwbG90MikNCmdncGxvdChUb3RhbERhdGEsYWVzKHg9Rmxvdy5yYXRlLCB5PWxvZzEwKHYpLCBmaWxsPUNobG9yb3BoeWxsKSkrDQogIGdlb21fYm94cGxvdChub3RjaD1GLCBub3RjaHdpZHRoPTAuMyxvdXRsaWVyLnNoYXBlPTEsb3V0bGllci5zaXplPTIsIGNvZWY9MS41KSsNCiAgdGhlbWUoYXhpcy50ZXh0PWVsZW1lbnRfdGV4dChjb2xvcj0iYmxhY2siKSkrDQogIHRoZW1lKGF4aXMudGV4dC54PWVsZW1lbnRfdGV4dChhbmdsZT05MCxoanVzdD0xLHZqdXN0PTAuNCkpKw0KICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yPWVsZW1lbnRfYmxhbmsoKSkrDQogIGxhYnMoc2l6ZT0gIiIseCA9ICJGbG93IFJhdGUgKGNtL3MpIiwgeSA9ICJWZWxvY2l0eSAoTG9nIHRyYW5zZm9ybWVkKShtbS9zKSIsIHRpdGxlID0gIkxpZ2h0IikgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXM9YygiZ3JlZW55ZWxsb3ciLCAieWVsbG93Z3JlZW4iLCJsaWdodGdyZWVuIiwgImdyZWVuIiwgImdyZWVuMyIsICJncmVlbjQiLCAiZGFya2dyZWVuIiksbmFtZSA9ICJDaGxvcm9waHlsbCAobWcvTCkiLA0KICAgICAgICAgICAgICAgICAgICBsYWJlbHM9YygiMCIsICI0LjMiLCAiNC42IiwgIjYuMSIsICI3LjYiLCAiMTMuNSIsICIxOSIpKSsNCiAgZmFjZXRfZ3JpZCh+TGlnaHQsIHNjYWxlcyA9ICJmcmVlX3giLCBzcGFjZSA9ICJmcmVlIikNCg0KZ2dwbG90KFRvdGFsRGF0YSxhZXMoeD1GbG93LnJhdGUsIHk9dHVybi5hbmdsZSwgZmlsbD1DaGxvcm9waHlsbCkpKw0KICBnZW9tX2JveHBsb3Qobm90Y2g9Riwgbm90Y2h3aWR0aD0wLjMsb3V0bGllci5zaGFwZT0xLG91dGxpZXIuc2l6ZT0yLCBjb2VmPTEuNSkrDQogIHRoZW1lKGF4aXMudGV4dD1lbGVtZW50X3RleHQoY29sb3I9ImJsYWNrIikpKw0KICB0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQoYW5nbGU9OTAsaGp1c3Q9MSx2anVzdD0wLjQpKSsNCiAgdGhlbWUocGFuZWwuZ3JpZC5taW5vcj1lbGVtZW50X2JsYW5rKCkpKw0KICBsYWJzKHNpemU9ICIiLHggPSAiRmxvdyBSYXRlIChjbS9zKSIsIHkgPSAiVHVybiBBbmdsZSAoZGVncmVlcykiLCB0aXRsZSA9ICJMaWdodCIpICsNCiAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzPWMoImdyZWVueWVsbG93IiwgInllbGxvd2dyZWVuIiwibGlnaHRncmVlbiIsICJncmVlbiIsICJncmVlbjMiLCAiZ3JlZW40IiwgImRhcmtncmVlbiIpLG5hbWUgPSAiQ2hsb3JvcGh5bGwgKG1nL0wpIiwNCiAgICAgICAgICAgICAgICAgICAgbGFiZWxzPWMoIjAiLCAiNC4zIiwgIjQuNiIsICI2LjEiLCAiNy42IiwgIjEzLjUiLCAiMTkiKSkrDQogIGZhY2V0X2dyaWQofkxpZ2h0LCBzY2FsZXMgPSAiZnJlZV94Iiwgc3BhY2UgPSAiZnJlZSIpDQoNCmBgYA0KDQpTdGFydGluZyB0byBsb29rIGF0IGJpLW1vZGFsaXR5IGluIHRoZSB2YXJpYWJsZXMgYnkgbWVyZ2luZyB0aGUgVG90YWxEYXRhIGZyYW1lIHdpdGggdGhlICJ0YWIiIHRhYmxlDQpgYGB7cn0NCiMjYWdncmVnYXRpbmcgQ29tcGxldGUgY2FzZXMgb2YgVG90YWxEYXRhIHNvIHdlIGNhbiBtZXJnZSBpdCB3aXRoIHRhYiBkYXRhDQoNCkFHR19URCA8LSBhZ2dyZWdhdGUoQ0MuVG90YWxEYXRhLCBieSA9IGxpc3QoQ0MuVG90YWxEYXRhJERfVl9UKSwgRlVOID0gbWVhbikNCmhlYWQoQUdHX1REKQ0KQUdHX1REIDwtIEFHR19URFsgLWMoMjozLCA4OjEwKSBdDQpjb2xuYW1lcyhBR0dfVEQpIDwtIGMoIkluZCIsICJYIiwgIlkiLCAiWiIsICJUcmFjayIsICJGbG93LlJhdGUiLCAiQ2hsb3JvcGh5bGwiLCAiR3Vhbm8iLCAiTGlnaHQiLCAiZHgiLCAiZHkiLCAiZHoiLCAiZCIsICJ2eCIsICJ2eSIsICJ2eiIsICJ2IiwgImhlYWRpbmciLCAicGl0Y2giLCAidHVybi5hbmdsZXh5IiwgInR1cm4uYW5nbGV5eiIsICJ0dXJuLmFuZ2xlIikNCmhlYWQoQUdHX1REKQ0KdGFpbChBR0dfVEQpDQoNCg0KdGFiX0FHRyA8LSBtZXJnZShBR0dfVEQsIHRhYiwgYnkgPSAiSW5kIikNCmhlYWQodGFiX0FHRykNCnN0cih0YWJfQUdHKQ0KdGFiX0FHRyRGbG93LlJhdGUgPC0gYXMuZmFjdG9yKHRhYl9BR0ckRmxvdy5SYXRlKQ0KdGFiX0FHRyRDaGxvcm9waHlsbCA8LSBhcy5mYWN0b3IodGFiX0FHRyRDaGxvcm9waHlsbCkNCg0KZnJlcSA8LSB0YWJsZSh0YWJfQUdHJEZsb3cuUmF0ZSwgdGFiX0FHRyRDaGxvcm9waHlsbCkNCnByaW50KGZyZXEpDQpwcm9iIDwtIHByb3AudGFibGUoZnJlcSkgIyNSZWxhdGl2ZSBGcmVxdWVuY3kgVGFibGUNCnByaW50IChwcm9iKQ0KDQojI3N0YXJ0aW5nIHRvIHBsb3QgdGhlIGRpcCB0ZXN0IGFuZCBza2V3IGluIHRoZSB2YXJpYWJsZXMNCnBsb3QodGFiX0FHRyRGbG93LlJhdGUsIHRhYl9BR0ckZGlwLnRlc3QsIHhsYWIgPSAiRmxvdyBSYXRlIChjbS9zKSIsIHlsYWIgPSAiRGlwIFRlc3QgKHAudmFsdWUpIikNCnBsb3QodGFiX0FHRyRGbG93LlJhdGUsIHRhYl9BR0ckc2tldywgeGxhYiA9ICJGbG93IFJhdGUgKGNtL3MpIiwgeWxhYiA9ICJTa2V3IFRlc3QgKHAudmFsdWUpIikNCnBsb3QodGFiX0FHRyRDaGxvcm9waHlsbCwgdGFiX0FHRyRkaXAudGVzdCwgeGxhYiA9ICJDaGxvcm9waHlsbCAobWcvTCkiLCB5bGFiID0gIkRpcCBUZXN0IChwLnZhbHVlKSIpDQpwbG90KHRhYl9BR0ckQ2hsb3JvcGh5bGwsIHRhYl9BR0ckc2tldywgeGxhYiA9ICJDaGxvcm9waHlsbCAobWcvTCkiLCB5bGFiID0gIlNrZXcgVGVzdCAocC52YWx1ZSkiKQ0KDQoNCiMjIHRvIHNhdmUgZWFjaCBpbmQgZ3JhcGgNCmZvciAoaSBpbiAxOmxlbmd0aChpbmQpKXsNCiAganBlZyhmaWxlbmFtZT1wYXN0ZShpbmRbaV0sICcuanBlZycsIHNlcCA9ICcnKSwgd2lkdGggPSA0ODAsIGhlaWdodCA9IDQ4MCkNCnBsb3QoQ0MuVG90YWxEYXRhJHR1cm4uYW5nbGVbQ0MuVG90YWxEYXRhJERfVl9UPT1pbmRbaV1dLCBsb2cxMChDQy5Ub3RhbERhdGEkdltDQy5Ub3RhbERhdGEkRF9WX1Q9PWluZFtpXV0pLA0KICAgICAgICAgICAgeGxhYiA9ICJUdXJuIEFuZ2xlcyAoZGVncmVlcykiLA0KICAgICB5bGFiID0gIlZlbG9jaXR5IChMT2deMTAsIG1tL3MpIiwNCiAgICAgICAgICBtYWluID0gaW5kW2ldKSANCmRldi5vZmYoKQ0KfQ0KYGBgDQpgYGB7cn0NCmhpc3QoQ0MuVG90YWxEYXRhJHR1cm4uYW5nbGUsIGJyZWFrcyA9IDEwMCkNCg0KDQoNCmBgYA0KDQoNCg0KYGBge3J9DQpzYXZlLmltYWdlKCJ+L1Bvc3QtZG9jL0RhdGEvVG90YWwgTWVyZ2VkIERhdGEgRmlsZSAoQXByaWwgNSAyMDIyKS5SRGF0YSIpDQoNCmBgYA0KDQoNCg0K